Clear MPT l2 entries when allocating monitor pagetable
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Thu, 27 Jul 2006 12:18:36 +0000 (13:18 +0100)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Thu, 27 Jul 2006 12:18:36 +0000 (13:18 +0100)
Changeset 10734 removed the code clearing MPT l2 entries, however
these entries are stained when copying from idle_pg_table_l2.

Signed-off-by: Xin Li <xin.b.li@intel.com>
xen/arch/x86/shadow_public.c

index 3ff46c9a996913839469d9bf81d5896b7a7dfcdb..44833b68bcb0050cfff8bb5d2bf28d7e47e9155e 100644 (file)
@@ -438,6 +438,8 @@ static void alloc_monitor_pagetable(struct vcpu *v)
             (l3e_get_flags(mpl3e[i]) & _PAGE_PRESENT) ?
             l2e_from_pfn(l3e_get_pfn(mpl3e[i]), __PAGE_HYPERVISOR) :
             l2e_empty();
+    for ( i = 0; i < (MACHPHYS_MBYTES >> (L2_PAGETABLE_SHIFT - 20)); i++ )
+        mpl2e[l2_table_offset(RO_MPT_VIRT_START) + i] = l2e_empty();
 
     if ( v->vcpu_id == 0 )
     {